home *** CD-ROM | disk | FTP | other *** search
/ PCGUIA 127 / PC Guia 127.iso / Software / Produtividade / OpenOffice.org 2.0.1 / openofficeorg4.cab / test_userlist.py < prev    next >
Text File  |  2005-11-19  |  7KB  |  268 lines

  1. # Check every path through every method of UserList
  2.  
  3. from UserList import UserList
  4. import unittest, test.test_support
  5.  
  6. class UserListTest(unittest.TestCase):
  7.  
  8.     def test_constructors(self):
  9.         l0 = []
  10.         l1 = [0]
  11.         l2 = [0, 1]
  12.  
  13.         u = UserList()
  14.         u0 = UserList(l0)
  15.         u1 = UserList(l1)
  16.         u2 = UserList(l2)
  17.  
  18.         uu = UserList(u)
  19.         uu0 = UserList(u0)
  20.         uu1 = UserList(u1)
  21.         uu2 = UserList(u2)
  22.  
  23.         v = UserList(tuple(u))
  24.         class OtherList:
  25.             def __init__(self, initlist):
  26.                 self.__data = initlist
  27.             def __len__(self):
  28.                 return len(self.__data)
  29.             def __getitem__(self, i):
  30.                 return self.__data[i]
  31.         v0 = UserList(OtherList(u0))
  32.         vv = UserList("this is also a sequence")
  33.  
  34.     def test_repr(self):
  35.         l0 = []
  36.         l2 = [0, 1, 2]
  37.         u0 = UserList(l0)
  38.         u2 = UserList(l2)
  39.  
  40.         self.assertEqual(str(u0), str(l0))
  41.         self.assertEqual(repr(u0), repr(l0))
  42.         self.assertEqual(`u2`, `l2`)
  43.  
  44.     def test_cmplen(self):
  45.         l0 = []
  46.         l1 = [0]
  47.         l2 = [0, 1]
  48.  
  49.         # Test constructors
  50.  
  51.         u = UserList()
  52.         u0 = UserList(l0)
  53.         u1 = UserList(l1)
  54.         u2 = UserList(l2)
  55.  
  56.         uu = UserList(u)
  57.         uu0 = UserList(u0)
  58.         uu1 = UserList(u1)
  59.         uu2 = UserList(u2)
  60.  
  61.         def mycmp(x, y):
  62.             r = cmp(x, y)
  63.             if r < 0: return -1
  64.             if r > 0: return 1
  65.             return r
  66.  
  67.         all = [l0, l1, l2, u, u0, u1, u2, uu, uu0, uu1, uu2]
  68.         for a in all:
  69.             for b in all:
  70.                 self.assertEqual(mycmp(a, b), mycmp(len(a), len(b)))
  71.  
  72.         self.assert_(u0 <= u2)
  73.         self.assert_(u2 >= u0)
  74.  
  75.     def test_getitem(self):
  76.         u = UserList([0, 1, 2])
  77.         for i in xrange(len(u)):
  78.             self.assertEqual(u[i], i)
  79.  
  80.     def test_setitem(self):
  81.         u = UserList([0, 1])
  82.         u[0] = 0
  83.         u[1] = 100
  84.         self.assertEqual(u, [0, 100])
  85.         self.assertRaises(IndexError, u.__setitem__, 2, 200)
  86.  
  87.     def test_delitem(self):
  88.         u = UserList([0, 1])
  89.         del u[1]
  90.         del u[0]
  91.         self.assertRaises(IndexError, u.__delitem__, 0)
  92.  
  93.     def test_getslice(self):
  94.         l = [0, 1]
  95.         u = UserList(l)
  96.         for i in xrange(-3, 4):
  97.             self.assertEqual(u[:i], l[:i])
  98.             self.assertEqual(u[i:], l[i:])
  99.             for j in xrange(-3, 4):
  100.                 self.assertEqual(u[i:j], l[i:j])
  101.  
  102.     def test_setslice(self):
  103.         l = [0, 1]
  104.         u = UserList(l)
  105.  
  106.         # Test __setslice__
  107.         for i in range(-3, 4):
  108.             u[:i] = l[:i]
  109.             self.assertEqual(u, l)
  110.             u2 = u[:]
  111.             u2[:i] = u[:i]
  112.             self.assertEqual(u2, u)
  113.             u[i:] = l[i:]
  114.             self.assertEqual(u, l)
  115.             u2 = u[:]
  116.             u2[i:] = u[i:]
  117.             self.assertEqual(u2, u)
  118.             for j in range(-3, 4):
  119.                 u[i:j] = l[i:j]
  120.                 self.assertEqual(u, l)
  121.                 u2 = u[:]
  122.                 u2[i:j] = u[i:j]
  123.                 self.assertEqual(u2, u)
  124.  
  125.         uu2 = u2[:]
  126.         uu2[:0] = [-2, -1]
  127.         self.assertEqual(uu2, [-2, -1, 0, 1])
  128.         uu2[0:] = []
  129.         self.assertEqual(uu2, [])
  130.  
  131.     def test_contains(self):
  132.         u = UserList([0, 1, 2])
  133.         for i in u:
  134.             self.assert_(i in u)
  135.         for i in min(u)-1, max(u)+1:
  136.             self.assert_(i not in u)
  137.  
  138.     def test_delslice(self):
  139.         u = UserList([0, 1])
  140.         del u[1:2]
  141.         del u[0:1]
  142.         self.assertEqual(u, [])
  143.  
  144.         u = UserList([0, 1])
  145.         del u[1:]
  146.         del u[:1]
  147.         self.assertEqual(u, [])
  148.  
  149.     def test_addmul(self):
  150.         u1 = UserList([0])
  151.         u2 = UserList([0, 1])
  152.         self.assertEqual(u1, u1 + [])
  153.         self.assertEqual(u1, [] + u1)
  154.         self.assertEqual(u1 + [1], u2)
  155.         self.assertEqual([-1] + u1, [-1, 0])
  156.         self.assertEqual(u2, u2*1)
  157.         self.assertEqual(u2, 1*u2)
  158.         self.assertEqual(u2+u2, u2*2)
  159.         self.assertEqual(u2+u2, 2*u2)
  160.         self.assertEqual(u2+u2+u2, u2*3)
  161.         self.assertEqual(u2+u2+u2, 3*u2)
  162.  
  163.     def test_add_specials(self):
  164.         u = UserList("spam")
  165.         u2 = u + "eggs"
  166.         self.assertEqual(u2, list("spameggs"))
  167.  
  168.     def test_radd_specials(self):
  169.         u = UserList("eggs")
  170.         u2 = "spam" + u
  171.         self.assertEqual(u2, list("spameggs"))
  172.         u2 = u.__radd__(UserList("spam"))
  173.         self.assertEqual(u2, list("spameggs"))
  174.  
  175.     def test_append(self):
  176.         u = UserList((0, ))
  177.         u.append(1)
  178.         self.assertEqual(u, [0, 1])
  179.  
  180.     def test_insert(self):
  181.         u = UserList((0, 1))
  182.         u.insert(0, -1)
  183.         self.assertEqual(u, [-1, 0, 1])
  184.  
  185.     def test_pop(self):
  186.         u = UserList((-1, 0, 1))
  187.         u.pop()
  188.         self.assertEqual(u, [-1, 0])
  189.         u.pop(0)
  190.         self.assertEqual(u, [0])
  191.  
  192.     def test_remove(self):
  193.         u = UserList((0, 1))
  194.         u.remove(1)
  195.         self.assertEqual(u, [0])
  196.  
  197.     def test_count(self):
  198.         u = UserList((0, 1))*3
  199.         self.assertEqual(u.count(0), 3)
  200.         self.assertEqual(u.count(1), 3)
  201.         self.assertEqual(u.count(2), 0)
  202.  
  203.     def test_index(self):
  204.         u = UserList((0, 1))
  205.         self.assertEqual(u.index(0), 0)
  206.         self.assertEqual(u.index(1), 1)
  207.         self.assertRaises(ValueError, u.index, 2)
  208.  
  209.         u = UserList([-2,-1,0,0,1,2])
  210.         self.assertEqual(u.count(0), 2)
  211.         self.assertEqual(u.index(0), 2)
  212.         self.assertEqual(u.index(0,2), 2)
  213.         self.assertEqual(u.index(-2,-10), 0)
  214.         self.assertEqual(u.index(0,3), 3)
  215.         self.assertEqual(u.index(0,3,4), 3)
  216.         self.assertRaises(ValueError, u.index, 2,0,-10)
  217.  
  218.     def test_reverse(self):
  219.         u = UserList((0, 1))
  220.         u2 = u[:]
  221.         u.reverse()
  222.         self.assertEqual(u, [1, 0])
  223.         u.reverse()
  224.         self.assertEqual(u, u2)
  225.  
  226.     def test_sort(self):
  227.         u = UserList([1, 0])
  228.         u.sort()
  229.         self.assertEqual(u, [0, 1])
  230.  
  231.     def test_slice(self):
  232.         u = UserList("spam")
  233.         u[:2] = "h"
  234.         self.assertEqual(u, list("ham"))
  235.  
  236.     def test_iadd(self):
  237.         u = UserList((0, 1))
  238.         u += [0, 1]
  239.         self.assertEqual(u, [0, 1, 0, 1])
  240.         u += UserList([0, 1])
  241.         self.assertEqual(u, [0, 1, 0, 1, 0, 1])
  242.  
  243.         u = UserList("spam")
  244.         u += "eggs"
  245.         self.assertEqual(u, list("spameggs"))
  246.  
  247.     def test_extend(self):
  248.         u1 = UserList((0, ))
  249.         u2 = UserList((0, 1))
  250.         u = u1[:]
  251.         u.extend(u2)
  252.         self.assertEqual(u, u1 + u2)
  253.  
  254.         u = UserList("spam")
  255.         u.extend("eggs")
  256.         self.assertEqual(u, list("spameggs"))
  257.  
  258.     def test_imul(self):
  259.         u = UserList((0, 1))
  260.         u *= 3
  261.         self.assertEqual(u, [0, 1, 0, 1, 0, 1])
  262.  
  263. def test_main():
  264.     test.test_support.run_unittest(UserListTest)
  265.  
  266. if __name__ == "__main__":
  267.     test_main()
  268.